package org.jeecg.modules.demo.com.kunpeng.mapper;

import java.util.List;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.demo.com.kunpeng.entity.SaleContract;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.demo.com.kunpeng.vo.SaleContractVO;
import org.springframework.stereotype.Repository;

/**
 * @Description: 销售合同表
 * @Author: jeecg-boot
 * @Date:   2022-12-03
 * @Version: V1.0
 */
@Repository
public interface SaleContractMapper extends BaseMapper<SaleContract> {


    /**
     * 根据合同属性或者合同状态或者关键字查询销售合同数据
     * @param contractProperties
     * @param status
     * @param keyWords
     * @return
     */
    List<SaleContractVO> listByKeyWords(Page<SaleContractVO> page, @Param("contractProperties") String contractProperties,
                                        @Param("status") String status, @Param("keyWords") String keyWords);

    /**
     * 根据项目名称获取销售项目数据
     */
    SaleContractVO selectByProjectName(String projectName);

    /**
     * 根据id修改状态
     * @param id
     * @param status
     */
    void updateStateById(String id,String status);

    /**
     * 根据销售合同编号获取销售合同数据列表
     * @param saleContractId
     * @return
     */
    List<SaleContractVO> selectBySaleContractId(String saleContractId);

    /**
     * 根据id修改销售合同关联项目名称
     * @param id
     */
    void updateProjectNameById(String id,String projectName);

    /**
     * 销售合同名称列表
     */
    List<String> saleContractNameList();

    /**
     * 根据销售合同名称获取合同编号
     */
    String selectSaleContractIdBySaleContractName(String saleContractName);

    /**
     * 根据销售合同名称查询销售合同表
     */
    List<SaleContract> selectBySaleContactName(String saleContractName);

}
